/**
 * 框架基础配置
 */

const Path = require('path');
const fs = require('fs');
const JSON5 = require('json5');

let newPath = Path.resolve( './mcInteract/base.json');
let par = Path.parse(newPath);
if(!fs.existsSync(par.dir)){
    fs.mkdirSync(par.dir, { recursive: true });//创建目录
}



const configBase = {
    host:'http://localhost:8000',//访问地址(域名根据外网最终地址修改)
    port:8000,//服务监听端口(内部端口|最终访问取决于nginx代理的端口)
    projectName:'mcInteract',//项目名称
    cache:'file',//file 就是本地内存缓存(多核运行的时候会出现问题)  reids 就是reids数据库缓存(多核多线程运行用这个)
    isOpenDefense:true,//是否开启安全防护
    defense:{
        numberRequests:150,//请求次数（在指定间隔内最大上限）
        interval:60,//单位秒（间隔）
        banTime:600,//封禁IP 单位秒（指定间隔时间内超过最大请求数封禁时间）
    },//安全防护
    encrypt:{
        key:'1234567890123499',//密钥
        excursion:'1987654321623499',//偏移
        type:'AES',//加密类型 (目前只有这一种)
    },//加密解密方法在 function.js 里面
    mailer:{
        sender:'Yoyo工作室',//发送者名称
        email:'xxxx@wyouw.cn',//邮箱账号
        pass:'',//邮箱密码
        host:'smtp.xxxx.cn',//发送信件服务器地址
    }
};

if(!fs.existsSync(newPath)){
    fs.writeFileSync(newPath,JSON.stringify(configBase,null,'\t'),'utf8');
}

let configJson = fs.readFileSync(newPath,'utf8');

try {
    configJson = JSON5.parse(configJson);
} catch (error) {
    configJson = configBase;//用初始化配置
    ylog.error('当前配置文件错误,已经使用初始化配置文件,请检查配置文件是否正确!');
}

 module.exports = configJson;